package com.biosimilarity.example.report;
import com.biosimilarity.example.report.Absyn.*;
/** BNFC-Generated Abstract Visitor */
public class AbstractVisitor<R,A> implements AllVisitor<R,A> {
/* Report */
    public R visit(com.biosimilarity.example.report.Absyn.Application p, A arg) { return visitDefault(p, arg); }

    public R visit(com.biosimilarity.example.report.Absyn.Dependency p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.example.report.Absyn.Aggregation p, A arg) { return visitDefault(p, arg); }
    public R visit(com.biosimilarity.example.report.Absyn.Atomic p, A arg) { return visitDefault(p, arg); }

    public R visitDefault(com.biosimilarity.example.report.Absyn.Report p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* Formals */
    public R visit(com.biosimilarity.example.report.Absyn.Parameters p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.example.report.Absyn.Formals p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* ReportId */
    public R visit(com.biosimilarity.example.report.Absyn.Variable p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.example.report.Absyn.ReportId p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }
/* Question */
    public R visit(com.biosimilarity.example.report.Absyn.Query p, A arg) { return visitDefault(p, arg); }
    public R visitDefault(com.biosimilarity.example.report.Absyn.Question p, A arg) {
      throw new IllegalArgumentException(this.getClass().getName() + ": " + p);
    }

}
